﻿#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h >
#include<stdlib.h>
//文件操作

//fseek函数的使用
int main()
{
	FILE* PFILE = fopen("test.exe", "r");
	//fputs("abcdefg", PFILE);
	if (PFILE == NULL)
	{
		perror("fopen");
		return 1;
	}
	fseek(PFILE, 5, SEEK_SET);//这里的5是偏移量，seek_SET是从起始位置开始，seek_cut是从当前位置开始，seek_end是从末尾开始
	int ch = fgetc(PFILE);

	printf("%c", ch);

	fclose(PFILE);

	return 0;
}

//ftell函数的使用
//返回函数起始位置的偏移量

//int main()
//{
//
//	FILE* PFILE = fopen("test.exe", "r");
//	//fputs("abcdefg", PFILE);
//	if (PFILE == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	fseek(PFILE, 0, SEEK_END);//这里的5是偏移量，seek_SET是从起始位置开始，seek_cut是从当前位置开始，seek_end是从末尾开始
//	//int ch = fgetc(PFILE);
//	int size = ftell(PFILE);
//
//	//printf("%c", ch);
//	printf("%d", size);//返回偏移量
//
//	fclose(PFILE);
//
//	return 0;
//}


//rewind函数的使用

//回到函数起始位置
//int main()
//{
//
//	FILE* PFILE = fopen("test.exe", "r");
//	//fputs("abcdefg", PFILE);
//	if (PFILE == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	fseek(PFILE, 0, SEEK_END);//这里的5是偏移量，seek_SET是从起始位置开始，seek_cut是从当前位置开始，seek_end是从末尾开始
//	//int ch = fgetc(PFILE);
//	rewind(PFILE);
//	int size = ftell(PFILE);
//
//	//printf("%c", ch);
//	printf("%d", size);//返回偏移量,因为文件回到了起始位置，所以偏移量这里为0
//
//	fclose(PFILE);
//
//	return 0;
//}


//feof函数的使用

//判断文件结束是否是因为读到了文件末尾，而不是用来判断文件是否结束

//int main()
//{
//	FILE* PFILE = fopen("text.exe", "r");
//	if (PFILE == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	int ch = 0;
//	while ((ch = fgetc(PFILE)) != EOF)//当文件读取结束是会返回EOF，如果是fgets会返回NULL空指针
//	{
//		printf("%c", ch);
//	}
//	
//	if (feof(PFILE))
//	{
//		printf("\n已经读到文件末尾");
//	}
//	fclose(PFILE);
//
//	return 0;
//}

//1. ⽂本⽂件读取是否结束，判断返回值是否为 EOF （ fgetc ），或者 NULL （ fgets ）
//例如：
//• fgetc 判断是否为 EOF . ?
//• fgets 判断返回值是否为 NULL

